package cn.zhuzicc.concurrent.demo2_concurrent_problem;


/**
 * @author zhaoxiang
 * @version 1.0
 * @description 案例演示:一个线程对共享变量的修改,另一个线程不能立即得到最新值
 * @Date 2021/9/17 10:15
 */
public class Test01Visibility {
    // 1.创建共享变量
    static boolean flag = true;
    static Object o = new Object();
    public static void main(String[] args) throws InterruptedException {

        // 2.创建一个线程不断读取共享变量
        new Thread(() -> {
            while (flag){
                synchronized (o){

                }
            }
        }).start();

        Thread.sleep(2000);

        // 3.创建一个线程修改共享变量
        new Thread(() -> {
            flag = false;
            System.out.println(Thread.currentThread().getName() + ",线程修改了变量的值为false");
        }).start();

    }
}